{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import cv2 #opencv读取的格式是BGR\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt#Matplotlib是RGB\n",
    "%matplotlib inline "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def cv_show(img,name):\n",
    "    cv2.imshow(name,img)\n",
    "    cv2.waitKey()\n",
    "    cv2.destroyAllWindows()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 直方图"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![title](hist_1.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### cv2.calcHist(images,channels,mask,histSize,ranges)\n",
    "\n",
    "- images: 原图像图像格式为 uint8 或 ﬂoat32。当传入函数时应 用中括号 [] 括来例如[img]\n",
    "- channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的参数可以是 [0][1][2] 它们分别对应着 BGR。 \n",
    "- mask: 掩模图像。统整幅图像的直方图就把它为 None。但是如 果你想统图像某一分的直方图的你就制作一个掩模图像并 使用它。\n",
    "- histSize:BIN 的数目。也应用中括号括来\n",
    "- ranges: 像素值范围常为 [0256] "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(256, 1)"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "img = cv2.imread('cat.jpg',0) #0表示灰度图\n",
    "hist = cv2.calcHist([img],[0],None,[256],[0,256])\n",
    "hist.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x216853fbe80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(img.ravel(),256); \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nRQlQ/g9HYrA2vIZBfgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x216fcef24e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "img = cv2.imread('cat.jpg') \n",
    "color = ('b','g','r')\n",
    "for i,col in enumerate(color): \n",
    "    histr = cv2.calcHist([img],[i],None,[256],[0,256]) \n",
    "    plt.plot(histr,color = col) \n",
    "    plt.xlim([0,256]) \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "mask操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(414, 500)\n"
     ]
    }
   ],
   "source": [
    "# 创建mast\n",
    "mask = np.zeros(img.shape[:2], np.uint8)\n",
    "print (mask.shape)\n",
    "mask[100:300, 100:400] = 255\n",
    "cv_show(mask,'mask')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "img = cv2.imread('cat.jpg', 0)\n",
    "cv_show(img,'img')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "masked_img = cv2.bitwise_and(img, img, mask=mask)#与操作\n",
    "cv_show(masked_img,'masked_img')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "hist_full = cv2.calcHist([img], [0], None, [256], [0, 256])\n",
    "hist_mask = cv2.calcHist([img], [0], mask, [256], [0, 256])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x216851e2470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplot(221), plt.imshow(img, 'gray')\n",
    "plt.subplot(222), plt.imshow(mask, 'gray')\n",
    "plt.subplot(223), plt.imshow(masked_img, 'gray')\n",
    "plt.subplot(224), plt.plot(hist_full), plt.plot(hist_mask)\n",
    "plt.xlim([0, 256])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 直方图均衡化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![title](hist_2.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![title](hist_3.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![title](hist_4.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nSR31/wH3kHonEUUYNgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2168035f5f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "img = cv2.imread('clahe.jpg',0) #0表示灰度图 #clahe\n",
    "plt.hist(img.ravel(),256); \n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x216fe152cf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "equ = cv2.equalizeHist(img) \n",
    "plt.hist(equ.ravel(),256)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "res = np.hstack((img,equ))\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 自适应直方图均衡化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8)) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "res_clahe = clahe.apply(img)\n",
    "res = np.hstack((img,equ,res_clahe))\n",
    "cv_show(res,'res')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
